// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`core.js 1`] = `
declare class Array<T> {
    @@iterator(): Iterator<T>;
    map<U>(callbackfn: (value: T, index: number, array: Array<T>) => U, thisArg?: any): Array<U>;
}

type IteratorResult<Yield,Return> =
  | { done: true, value?: Return }
  | { done: false, value: Yield };

interface $Iterator<+Yield,+Return,-Next> {
    @@iterator(): $Iterator<Yield,Return,Next>;
    next(value?: Next): IteratorResult<Yield,Return>;
}
type Iterator<+T> = $Iterator<T,void,void>;

interface $Iterable<+Yield,+Return,-Next> {
    @@iterator(): $Iterator<Yield,Return,Next>;
}
type Iterable<+T> = $Iterable<T,void,void>;

declare class Map<K, V> {
    @@iterator(): Iterator<[K, V]>;
    constructor(iterable: ?Iterable<[K, V]>): void;
    set(key: K, value: V): Map<K, V>;
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
declare class Array<T> {
  @@iterator(): Iterator<T>;
  map<U>(
    callbackfn: (value: T, index: number, array: Array<T>) => U,
    thisArg?: any
  ): Array<U>;
}

type IteratorResult<Yield, Return> =
  | { done: true, value?: Return }
  | { done: false, value: Yield };

interface $Iterator<+Yield, +Return, -Next> {
  @@iterator(): $Iterator<Yield, Return, Next>;
  next(value?: Next): IteratorResult<Yield, Return>;
}
type Iterator<+T> = $Iterator<T, void, void>;

interface $Iterable<+Yield, +Return, -Next> {
  @@iterator(): $Iterator<Yield, Return, Next>;
}
type Iterable<+T> = $Iterable<T, void, void>;

declare class Map<K, V> {
  @@iterator(): Iterator<[K, V]>;
  constructor(iterable: ?Iterable<[K, V]>): void;
  set(key: K, value: V): Map<K, V>;
}

`;

exports[`immutable.js 1`] = `
declare module "immutable" {
  declare class Map<K,V> {
    static <K,V>(iter: Iterator<[K,V]>): Map<K,V>;
    static <K:string,V>(object: {+[k:K]:V}): Map<K,V>;

    set(key: K, value: V): this;
  }
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
declare module "immutable" {
  declare class Map<K, V> {
    static <K, V>(iter: Iterator<[K, V]>): Map<K, V>;
    static <K: string, V>(object: { +[k: K]: V }): Map<K, V>;

    set(key: K, value: V): this;
  }
}

`;
